#include <stdio.h>
#include <stdlib.h>

//冒泡排序
/*
从后往前(或从前往后)两两比较相邻元素的值，若为逆序(即A[i-1]>A[i]) ，则交换它们，直到序
列比较完。称这样过程为“一-趟”冒泡排序。

适用于顺序表和链表

注：一趟冒泡排序如果没有发生交换，可以提前结束

*/
void swap(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

void BubbleSort(int A[], int n)
{
    for (int i = 0; i < n; i++)
    {
        bool flag = false;
        for (int j = n - 1; j > i; j--)
        {
            if (A[j - 1] > A[j])
            {
                swap(A[j - 1], A[j]);
                flag = true;
            }
        }
        if (!flag)
        {
            return; //本趟遍历后没有发生交换，说明表已经有序
        }
    }
}

int main()
{
    printf("\n\n========================================================================\n\n");

    printf("\n\n========================================================================\n\n");
    return 0;
}